hasnext
next

 start [
       hasnext -> safe
 ]
 safe [
       next -> start
       hasnext -> safe
 ]

f : start, safe
b : start, safe
